AUTOMAKE_OPTIONS = foreign no-dependencies

# This is the point release for libevent.  It shouldn't include any
# a/b/c/d/e notations.
RELEASE = 1.4

# This is the version info for the libevent binary API.  It has three
# numbers:
#   Current  -- the number of the binary API that we're implementing
#   Revision -- which iteration of the implementation of the binary
#               API are we supplying?
#   Age      -- How many previous binary API versions do we also
#               support?
#
# If we release a new version that does not change the binary API,
# increment Revision.
#
# If we release a new version that changes the binary API, but does
# not break programs compiled against the old binary API, increment
# Current and Age.  Set Revision to 0, since this is the first
# implementation of the new API.
#
# Otherwise, we're changing the binary API and breaking bakward
# compatibility with old binaries.  Increment Current.  Set Age to 0,
# since we're backward compatible with no previous APIs.  Set Revision
# to 0 too.

# History:
#  Libevent 1.4.1 was 2:0:0
#  Libevent 1.4.2 should be 3:0:0
#  Libevent 1.4.5 is 3:0:1 (we forgot to increment in the past)
VERSION_INFO = 3:3:1

bin_SCRIPTS = event_rpcgen.py

EXTRA_DIST = autogen.sh event.h event-internal.h log.h evsignal.h evdns.3 \
	evrpc.h evrpc-internal.h min_heap.h \
	event.3 \
	Doxyfile \
	kqueue.c epoll_sub.c epoll.c select.c poll.c signal.c \
	evport.c devpoll.c event_rpcgen.py \
	sample/Makefile.am sample/Makefile.in sample/event-test.c \
	sample/signal-test.c sample/time-test.c \
	test/Makefile.am test/Makefile.in test/bench.c test/regress.c \
	test/test-eof.c test/test-weof.c test/test-time.c \
	test/test-init.c test/test.sh \
	compat/sys/queue.h compat/sys/_time.h \
	WIN32-Code/config.h \
	WIN32-Code/event-config.h \
	WIN32-Code/win32.c \
	WIN32-Code/tree.h \
	WIN32-Prj/event_test/event_test.dsp \
	WIN32-Prj/event_test/test.txt WIN32-Prj/libevent.dsp \
	WIN32-Prj/libevent.dsw WIN32-Prj/signal_test/signal_test.dsp \
	WIN32-Prj/time_test/time_test.dsp WIN32-Prj/regress/regress.vcproj \
	WIN32-Prj/libevent.sln WIN32-Prj/libevent.vcproj

lib_LTLIBRARIES = libevent.la libevent_core.la libevent_extra.la

if BUILD_WIN32

SUBDIRS = . sample
SYS_LIBS = -lws2_32
SYS_SRC = WIN32-Code/win32.c
SYS_INCLUDES = -IWIN32-Code

else

SUBDIRS = . sample test
SYS_LIBS =
SYS_SRC =
SYS_INCLUDES =

endif

BUILT_SOURCES = event-config.h

event-config.h: config.h
	echo '/* event-config.h' > $@
	echo ' * Generated by autoconf; post-processed by libevent.' >> $@
	echo ' * Do not edit this file.' >> $@
	echo ' * Do not rely on macros in this file existing in later versions.'>> $@
	echo ' */' >> $@
	echo '#ifndef _EVENT_CONFIG_H_' >> $@
	echo '#define _EVENT_CONFIG_H_' >> $@

	sed -e 's/#define /#define _EVENT_/' \
	    -e 's/#undef /#undef _EVENT_/' \
	    -e 's/#ifndef /#ifndef _EVENT_/' < config.h >> $@
	echo "#endif" >> $@

CORE_SRC = event.c buffer.c evbuffer.c log.c evutil.c $(SYS_SRC)
EXTRA_SRC = event_tagging.c http.c evhttp.h http-internal.h evdns.c \
	evdns.h evrpc.c evrpc.h evrpc-internal.h \
	strlcpy.c strlcpy-internal.h strlcpy-internal.h

libevent_la_SOURCES = $(CORE_SRC) $(EXTRA_SRC)
libevent_la_LIBADD = @LTLIBOBJS@ $(SYS_LIBS)
libevent_la_LDFLAGS = -release $(RELEASE) -version-info $(VERSION_INFO)

libevent_core_la_SOURCES = $(CORE_SRC)
libevent_core_la_LIBADD = @LTLIBOBJS@ $(SYS_LIBS)
libevent_core_la_LDFLAGS = -release $(RELEASE) -version-info $(VERSION_INFO)

libevent_extra_la_SOURCES = $(EXTRA_SRC)
libevent_extra_la_LIBADD = @LTLIBOBJS@ $(SYS_LIBS)
libevent_extra_la_LDFLAGS = -release $(RELEASE) -version-info $(VERSION_INFO)

include_HEADERS = event.h evhttp.h evdns.h evrpc.h evutil.h

nodist_include_HEADERS = event-config.h

INCLUDES = -I$(srcdir)/compat $(SYS_INCLUDES)

man_MANS = event.3 evdns.3

verify: libevent.la
	cd test && make verify

doxygen: FORCE
	doxygen $(srcdir)/Doxyfile
FORCE:

DISTCLEANFILES = *~ event-config.h
